package Dominio;

import hbt.PersistentObject;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import dto.ItemFacturaTO;

@Entity
@Table (name="items_facturas")
public class ItemFactura extends PersistentObject{
	
	private static final long serialVersionUID = 1L;

	@ManyToOne
	@JoinColumn(name="idFactura")
	private Factura factura;
	
	@Column(name="cantidad",nullable=false, length=10)
	private int cantidad;

	@Column(name="totalItemFactura",nullable=false, length=10)
	private float totalItemFactura;
	
	@OneToOne (cascade=CascadeType.MERGE)
	@JoinColumn(name="idRodamiento")
	private Rodamiento rodamiento;
	
	
	public int getCantidad() {
		return cantidad;
	}
	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}
	public Rodamiento getRodamiento() {
		return rodamiento;
	}
	public void setRodamiento(Rodamiento rodamiento) {
		this.rodamiento = rodamiento;
	}

	public float getTotalItemFactura() 
	{
		this.calcularTotalItemFactura();
		return this.totalItemFactura;
	}
	public void calcularTotalItemFactura() 
	{
		this.totalItemFactura = this.rodamiento.getPrecio() * this.cantidad;
	}
	
	public Factura getFactura() {
		return factura;
	}
	public void setFactura(Factura factura) {
		this.factura = factura;
	}
	public ItemFacturaTO toTO() {
		return new ItemFacturaTO(null, this.cantidad,this.getTotalItemFactura(), this.rodamiento.toTO());
	}
}
